import axios from 'axios'
// @ts-ignore

import { userUserStore } from '@/stores'
import { ElMessage } from 'element-plus'
// // import { routerKey } from 'vue-router'

// @ts-ignore
import router from '@/router'

// const baseURL = 'http://172.20.10.9:8080'
// const baseURL = 'http://192.168.236.174:8080' kendrick
// const baseURL = 'http://192.168.178.174:8080'
// const baseURL = 'http://192.168.43.104:8080' //michael
// const baseURL = 'http://8.134.147.51:2443' //陈浩
const baseURL = 'http://0.0.0.0:2443' //陈浩
// const baseURL = 'http://172.21.160.168:2443' //陈浩
    // const baseURL = 'http://192.168.26.139:2443' //陈浩

// const baseURL = 'http://192.168.1.103:8080' //xike
// const baseURL = 'https://short-nights-visit.loca.lt'
// const baseURL_login = 'http://192.168.1.103:8080/api'
// const baseURL = 'https://www.fastmock.site/mock/1a9c34fb2521c4e3ae04413e1ffa8d80/article'


const instance = axios.create({
    baseURL,
    timeout: 5000
})


//请求拦截器
instance.interceptors.request.use(
    (config) => {
        // TODO 2. 携带token
        //token在pinia仓库
        const token = localStorage.getItem('token');
        // console.log('localStorage.getItem',token);
        // const useStore = userUserStore()
        // console.log('herehere pre',useStore.token);
        if (token) {
            // console.log('useStore.token',useStore.token);
            config.headers.Authorization = token
        }
        return config
    },
    (err) => Promise.reject(err)
)


//响应拦截器
instance.interceptors.response.use(
    (res) => {
        // console.log('res',res);
        // TODO 3. 处理业务失败
        // TODO 4. 摘取核心响应数据
        if (res.data.code === 200 || res.data.code === 201||res.data.code === 409) {
            return res
        } else {
            // 处理业务失败,给错误提示，抛出错误
            ElMessage.error(res.data.msg || '服务异常')
            return Promise.reject(res.data)
        }


    },
    (err) => {
        // TODO 5. 处理401错误
        //错误的特殊情况=>权限不足或token过期=>拦截到登录
        if (err.response.status === 401) {
            router.push('/login')
        }else {
            //错误的默认情况
            ElMessage.error(err.response.data.errorMsg || '服务异常')
            return Promise.reject({ status: err.response.status, message: err.response.data.errorMsg || '服务异常' })
        }

    }
)

// 请求拦截器
// instance.interceptors.request.use(
//   (config) => {
//     // config.headers['Content-type'] = 'application/json'
//     // config.headers['Content-Type'] = 'application/x-www-form-urlencoded' // 设置请求头
//     // config.headers['Content-Type'] = 'application/json' // 设置请求头
//     // config.headers['Content-Type'] = 'application/json;charset=UTF-8' // 设置请求头

//     // config.headers['Authorization'] = 'Bearer token' // 设置其他请求头，如身份验证令牌

//     return config
//   },
//   (err) => Promise.reject(err)
// )

// // 响应拦截器
// instance.interceptors.response.use(
//   (res) => {
//     return Promise.reject(res.data)
//   },
//   (err) => {
//     return Promise.reject(err)
//   }
// )
// axios.defaults.withCredentials = true;
export default instance
export { baseURL }